37 research outputs found

    A comparison of cache hierarchies for SMT processors

    Get PDF
    In the multithread and multicore era, programs are forced to share part of the processor structures. On one hand, the state of the art in multithreading describes how efficiently manage and distribute inner resources such as reorder buffer or issue windows. On the other hand, there is a substantial body of works focused on outer resources, mainly on how to effectively share last level caches in multicores. Between these ends, first and second level caches have remained apart even if they are shared in most commercial multithreaded processors. This work analyzes multiprogrammed workloads as the worst-case scenario for cache sharing among threads. In order to obtain representative results, we present a sampling-based methodology that for multiple metrics such as STP, ANTT, IPC throughput, or fairness, reduces simulation time up to 4 orders of magnitude when running 8-thread workloads with an error lower than 3% and a confidence level of 97%. With the above mentioned methodology, we compare several state-of-the-art cache hierarchies, and observe that Light NUCA provides performance benefits in SMT processors regardless the organization of the last level cache. Most importantly, Light NUCA gains are consistent across the entire number of simulated threads, from one to eight.Peer ReviewedPostprint (author's final draft

    Caracterización de instrucciones en aplicaciones de cloud

    Get PDF
    Las tendencias de mercado indican que el negocio de los procesadores para grandes centros de datos va a seguir creciendo, impulsado por la economía de la virtualización y la gran penetración empresarial y social de las aplicaciones que residen en las nubes (cloud computing). Para diseñar un procesador de futuro adaptado a este mercado es necesario experimentar con una carga de trabajo apropiada. Por ello, en este proyecto nos hemos centrado en caracterizar el comportamiento de la cache de instrucciones para un sistema de cuatro procesadores, usando el conjunto de aplicaciones Cloudsuite 2.0 del laboratorio de investigación Parsa, representativo del cloud computing. Hemos usado la plataforma de simulación Simics, un simulador de sistema completo, trabajando con las cinco aplicaciones de Cloudsuite que están acompañadas de checkpoints públicos. Además, se ha contribuido con un tutorial de Simics, acompañado de material práctico, para facilitar y agilizar la fase de formación de otros proyectos que también utilicen esta plataforma. Para realizar los experimentos deseados se han programado dos módulos de Simics de jerarquía de memoria basados en el módulo g-cache, que implementan dos algoritmos eficientes y específicos para registrar tasas de fallos y huellas de memoria. Un algoritmo obtiene resultados para múltiples caches en una sola simulación y el otro está especializado en caches completamente asociativas. A partir de estos experimentos hemos analizado los benchmarks en cuanto a su tasa de fallos, en función de su tamaño y de su asociatividad, sugiriendo configuraciones prácticas de tamaño y asociatividad para cada aplicación. También se ha examinado la huella de memoria de instrucciones a lo largo del tiempo, concluyendo que todas las aplicaciones tardan muchos segundos en entrar en régimen estacionario y que la aparición de varias fases complica la selección de ventanas de simulación. Y finalmente, se ha calculado el ancho de banda de instrucciones agregado para los cuatro procesadores simulados, concluyendo que la presión sobre el siguiente nivel puede ser bastante grande, y sugiriendo configuraciones de ese segundo nivel con capacidad para absorber las demandas del primero

    Aplicación nativa ANDROID para la localización de autobuses más frecuentemente usados en Londres

    Get PDF
    Aunque existen distintas aplicaciones en el mercado que ofrecen todo tipo de información sobre los autobuses de la ciudad de Londres, facilitada por la “Transport For London Unified API”, éstas no se enfocan en usuarios de autobús cuya rutina les lleva a usar con frecuencia la misma línea de autobús que cogen en las mismas paradas. Esta aplicación, que he llamado buStop, pretende llenar ese hueco, ofreciendo de manera rápida y requiriendo la mínima interacción posible del usuario, la información que necesita, cuándo la necesita y por supuesto de forma segura y en tiempo real. Para el desarrollo del proyecto se han tratado de seguir los pasos lógicos y de la manera más real posible, que se habrían seguido para desarrollar un producto en un marco de trabajo moderno. Desde el desarrollo de un plan de proyecto que justificaría llevarlo a cabo, como la definición funcional y desarrollo del mismo. El empleo de los principios definidos en las metodologías ágiles, así como el empleo de la última arquitectura de componentes definida por Google para el desarrollo de aplicaciones Android han ayudado al autor a profundizar y ampliar conocimientos en áreas y tecnologías que se encontraban fuera del ámbito habitual de su trabajo

    Balancer: bandwidth allocation and cache partitioning for multicore processors

    Get PDF
    The management of shared resources in multicore processors is an open problem due to the continuous evolution of these systems. The trend toward increasing the number of cores and organizing them in clusters sets out new challenges not considered in previous works. In this paper, we characterize the use of the shared cache and memory bandwidth of an AMD Rome processor executing multiprogrammed workloads and propose several mechanisms that control the use of these resources to improve the system performance and fairness. Our control mechanisms require no hardware or operating system modifications. We evaluate Balancer on a real system running SPEC CPU2006 and CPU2017 applications. Balancer tuned for performance shows an average increase of 7.1% in system performance and an unfairness reduction of 18.6% with respect to a system without any control mechanism. Balancer tuned for fairness decreases the performance by 1.3% in exchange for a 64.5% reduction of unfairness

    Memory hierarchy characterization of SPEC CPU2006 and SPEC CPU2017 on the Intel Xeon Skylake-SP

    Get PDF
    SPEC CPU is one of the most common benchmark suites used in computer architecture research. CPU2017 has recently been released to replace CPU2006. In this paper we present a detailed evaluation of the memory hierarchy performance for both the CPU2006 and single-threaded CPU2017 benchmarks. The experiments were executed on an Intel Xeon Skylake-SP, which is the first Intel processor to implement a mostly non-inclusive last-level cache (LLC). We present a classification of the benchmarks according to their memory pressure and analyze the performance impact of different LLC sizes. We also test all the hardware prefetchers showing they improve performance in most of the benchmarks. After comprehensive experimentation, we can highlight the following conclusions: i) almost half of SPEC CPU benchmarks have very low miss ratios in the second and third level caches, even with small LLC sizes and without hardware prefetching, ii) overall, the SPEC CPU2017 benchmarks demand even less memory hierarchy resources than the SPEC CPU2006 ones, iii) hardware prefetching is very effective in reducing LLC misses for most benchmarks, even with the smallest LLC size, and iv) from the memory hierarchy standpoint the methodologies commonly used to select benchmarks or simulation points do not guarantee representative workloads

    Prevención de ataques ROP en ejecutables mediante instrumentación dinámica

    Get PDF
    Los ataques Return Oriented Programming (ROP) consisten en la ejecución no deseada de pequeñas secuencias de código que ya existen en la memoria de un proceso. El encadenamiento de estas secuencias logra que el proceso atacado tenga un comportamiento arbitrario. Este mecanismo de ataque consigue evadir además las defensas existentes, como por ejemplo W^X, ASLR o stack cookie. Las secuencias de código se conocen como gadgets y se caracterizan por acabar con una instrucción cambio de flujo, normalmente una instrucción de retorno de subrutina, que permite el encadenamiento de los gadgets. En concreto, este tipo de ataque se basa en inyectar en la pila (estructura de almacenamiento temporal que guarda: direcciones de retorno, variables locales, etc.) una secuencia de direcciones que apuntan a los gadgets. Así, cuando se ejecuta el retorno de una función vulnerable, se salta a la dirección inyectada en pila y comienza la ejecución de un gadget. En este PFC se presenta una técnica de defensa frente a estos ataques ROP basada en dos principios: (i) asegurar la integridad de la pila mediante un mecanismo de copia y vericación de determinados valores; (ii) asegurar la integridad del flujo de instrucciones del proceso mediante la comparación de éste con el flujo teórico del programa. Esta defensa se ha desarrollado sobre un autómata de pila implementado mediante el framework de instrumentación dinámica Pin de Intel. De esta forma, el autómata de pila se encarga de garantizar la integridad de los datos y procesos, mientras que Pin se encarga de ejecutar las acciones del autómata de forma transparente al proceso. En relación a otras soluciones, esta es la primera propuesta que une la protección de la pila y la integridad del flujo del proceso de forma dinámica. Con un sobrecoste medio de 3.5 veces el tiempo base, la eficiencia de nuestra solución es comparable a la de otras alternativas. Al mismo tiempo, la relación entre ataques detectados y falsos positivos es muy buena, ya que en nuestro conjunto de pruebas se han detectado todos los ataques probados sin falsos positivos

    Análisis térmico y de potencia de multiprocesadores con DVFS

    Get PDF
    Este trabajo se centra en la caracterización térmica y energética de dos plataformas: Raspberry Pi y la placa base Asus Rampage VI Extreme Omega. Además, se documenta el control de potencia y rendimiento que estas realizan. <br /

    Revisiting LP-NUCA Energy Consumption: Cache Access Policies and Adaptive Block Dropping

    Get PDF
    Cache working-set adaptation is key as embedded systems move to multiprocessor and Simultaneous Multithreaded Architectures (SMT) because interthread pollution harms system performance and battery life. Light-Power NUCA (LP-NUCA) is a working-set adaptive cache that depends on temporal-locality to save energy. This work identifies the sources of energy waste in LP-NUCAs: parallel access to the tag and data arrays of the tiles and low locality phases with useless block migration. To counteract both issues, we prove that switching to serial access reduces energy without harming performance and propose a machine learning Adaptive Drop Rate (ADR) controller that minimizes the amount of replacement and migration when locality is low. This work demonstrates that these techniques efficiently adapt the cache drop and access policies to save energy. They reduce LP-NUCA consumption 22.7% for 1SMT. With interthread cache contention in 2SMT, the savings rise to 29%. Versus a conventional organization, energy--delay improves 20.8% and 25% for 1- and 2SMT benchmarks, and, in 65% of the 2SMT mixes, gains are larger than 20%

    ReD: A reuse detector for content selection in exclusive shared last-level caches

    Get PDF
    The reference stream reaching a chip multiprocessor Shared Last-Level Cache (SLLC) shows poor temporal locality, making conventional cache management policies inefficient. Few proposals address this problem for exclusive caches. In this paper, we propose the Reuse Detector (ReD), a new content selection mechanism for exclusive hierarchies that leverages reuse locality at the SLLC, a property that states that blocks referenced more than once are more likely to be accessed in the near future. Being placed between each L2 private cache and the SLLC, ReD prevents the insertion of blocks without reuse into the SLLC. It is designed to overcome problems affecting similar recent mechanisms (low accuracy, reduced visibility window and detector thrashing). ReD improves performance over other state-of-the-art proposals (CHAR, Reuse Cache and EAF cache). Compared with the baseline system with no content selection, it reduces the SLLC miss rate (MPI) by 10.1% and increases harmonic IPC by 9.5%.Peer ReviewedPostprint (author's final draft

    WCET con cache de instrucciones bloqueable y Lock-MS

    Get PDF
    En sistemas de tiempo real es imprescindible analizar tiempos de ejecuci&oacute;n de peor caso (WCET) de tareas, especialmente dif&iacute;cil con memorias cache. Nuestra propuesta automatiza dicho an&aacute;lisis mediante el m&eacute;todo Lock-MS para caches de instrucciones bloqueables. Esto permite analizar programas complejos, variando arbitrariamente los par&aacute;metros hardware o software relevantes
    corecore